﻿/**
 *      进程管理模块
 */
#ifndef _OSS_PROCESS_H_
#define _OSS_PROCESS_H_
#include "ossType.h"


#pragma comment(lib, "advapi32.lib")

OSS_EXTERN_BEG

/**
 *       创建指定的进程
 *@strApplicationPath       应用程序的路径
 *@strArgs                  带入应用程序的参数
 *@strWorkingDir            工作目录
 *@bCreateNoWindow          创建无窗口程序,TRUE为无窗口，FALSE为有窗口
 *@return                   创建成功返回TRUE
 *                          否则返回 FALSE
 */
Bool OssCreateProcess(const char* strApplicationPath,char* strArgs,char* strWorkingDir,Bool bCreateNoWindow);

/**
 *       创建指定的进程
 *@strApplicationPath       应用程序的路径
 *@strArgs                  带入应用程序的参数
 *@strWorkingDir            工作目录
 *@bCreateNoWindow          创建无窗口程序,TRUE为无窗口，FALSE为有窗口
 *@return                   创建成功返回TRUE
 *                          否则返回 FALSE
 */
Bool OssCreateBlockProcess(const char* strApplicationPath,char* strArgs,char* strWorkingDir,Bool bCreateNoWindow);

/**
 *       启动指定的sh脚本
 *@strApplicationPath       应用程序的路径
 *@return                   创建成功返回TRUE
 *                          否则返回 FALSE
 */
Bool OssCreateBlockShell(const char* strApplicationPath);

/**
 *      关闭指定的进程
 *@strApplicationName       指定的进程名称
 *@return                   成功关闭则返回TRUE
 *                          否则返回 FALSE
 */
Bool OssKillProcess(const char* strApplicationName);

/**
 *      获取当前正在运行的某个进程的个数
 *@strApplicationName       指定的进程名称
 *@return                   TRUE--进程存在
 *                          FALSE--进程不存在
 */
DWord OssGetProcessNum(char* strApplicationName);

/**
 *		获取指定进程的PID
 *@return		成功返回进程PID
 *				失败返回 0 
 */
DWord OssGetPidByName(const char* szProcName);

/**
 *      重启系统
 */
Bool OssRebootSystem();

OSS_EXTERN_END

#endif

